package com.maddox.mworld.ui.tabscroll;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.LayoutInflater;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.maddox.mworld.R;

import net.lucode.hackware.magicindicator.FragmentContainerHelper;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.abs.IPagerNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView;

import java.util.ArrayList;
import java.util.List;

public class TabScrollActivity extends AppCompatActivity {

    private MagicIndicator magicIndicator; //标签列表
    private RecyclerView recyclerView;//可滚动的列表内容
    private FragmentContainerHelper containerHelper;
    private LinearLayoutManager layoutManager;
    private PlantAdapter plantAdapter;

    private List<Plant> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_scroll);
        initView();
    }

    private void initView() {
        magicIndicator = (MagicIndicator) findViewById(R.id.class_tab);
        recyclerView = (RecyclerView) findViewById(R.id.class_content);
        containerHelper = new FragmentContainerHelper(magicIndicator);
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        plantAdapter = new PlantAdapter();
//        plantAdapter.addFooterView(LayoutInflater.from(this).inflate(R.layout.layout_ingredient_info_foot,null));
        recyclerView.setAdapter(plantAdapter);
        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                int itemPosition = layoutManager.findFirstCompletelyVisibleItemPosition();
                int lastItem = layoutManager.findLastVisibleItemPosition();

//                if (lastItem==dataList.size()-1){
//                    containerHelper.handlePageSelected(lastItem,true);
//                }else{
                    containerHelper.handlePageSelected(itemPosition,true);
//                }
            }
        });
        initData();
        CommonNavigator commonNavigator = new CommonNavigator(this);
        commonNavigator.setAdapter(new CommonNavigatorAdapter() {
            @Override
            public int getCount() {
                return dataList.size();
            }

            @Override
            public IPagerTitleView getTitleView(Context context, int index) {
                ColorTransitionPagerTitleView titleView = new ColorTransitionPagerTitleView(context);
                titleView.setText(dataList.get(index).typeName);
                titleView.setSelectedColor(Color.BLACK);
                titleView.setNormalColor(Color.DKGRAY);
                titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,20);
                titleView.setTypeface(Typeface.DEFAULT_BOLD);
                titleView.setOnClickListener(V->{
                    containerHelper.handlePageSelected(index);
                    layoutManager.smoothScrollToPosition(recyclerView,new RecyclerView.State(),index);
                });
                return titleView;
            }

            @Override
            public IPagerIndicator getIndicator(Context context) {
                LinePagerIndicator indicator = new LinePagerIndicator(context);
                indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
                indicator.setColors(Color.GREEN);
                return indicator;
            }
        });
        commonNavigator.setSmoothScroll(true);
        commonNavigator.setScrollPivotX(0.5f);
        magicIndicator.setNavigator(commonNavigator);


    }


    private void initData() {
        dataList = new ArrayList<>();

        Plant plant1 = new Plant();
        plant1.type=Plant.TYPE_TEXT;
        plant1.typeName="概述";
        plant1.summary="扁豆的别名很多，又叫藊豆、南扁豆、沿篱豆、蛾眉豆、凉衍豆、羊眼豆、膨皮豆、茶豆、南豆、小刀豆、树豆、藤豆，为豆科一年生缠绕草本。扁豆依花的产色不同分为红花与白花两类，荚果的产色有绿白、浅绿、粉红与紫红等色；栽培的主要品种有紫花小白扁、猪血扁、红筋扁、白花大白扁和大刀铡扁等品种。全国各地普遍栽培。扁豆的种子中含维生素B1、维生素C、胡萝卜素、蛋白质、脂肪、碳水化物、钙、磷、铁、植酸钙镁、泛酸、锌等营养成分.";
        Plant plant2 = new Plant();
        plant2.type=Plant.TYPE_NUTRI;
        plant2.typeName="营养成分";

        Plant plant3 = new Plant();
        plant3.type=Plant.TYPE_TEXT;
        plant3.typeName="食材特征";
        plant3.summary="扁豆，一年生草本植物，茎蔓生，小叶披针形，花白色或紫色，荚果长椭圆形，扁平，微弯。种子白色或紫黑色。嫩荚是普通蔬菜，种子可入药。扁豆含有蛋白质、碳水化合物，还含有毒蛋白、凝集素以及能引发溶血症的皂素。所以加热时一定要注意，扁豆一定要煮熟以后才能食用，否则会可能出现食物中毒现象。";

        Plant plant4 = new Plant();
        plant4.type=Plant.TYPE_TEXT;
        plant4.typeName="选购建议";
        plant4.summary="1、大家都知道哈，市场上的扁豆，一种是供蔬菜食用的嫩扁豆荚，因荚色不同，可分为白扁豆、青扁豆、紫扁豆。一般以白扁豆为佳，其豆荚肥厚肉嫩，清香味美。\n2、对于这种供蔬菜食用的扁豆，应该选择荚皮光亮、肉厚不显籽的嫩荚为宜；若荚皮薄、籽粒显、光泽暗则已老熟，只能剥籽食用。\n3、供蔬菜食用的嫩扁豆荚，因荚色不同，有白扁豆、青扁豆和紫扁豆三种。凡荚皮光亮、肉厚不显籽的嫩荚为好，炒食时肉嫩肥厚、清香味美。\n4、蔬菜扁豆，若荚皮薄、籽粒显、光泽暗则已老熟，不宜选购。\n5、还有一种是供主食或药用的，主要食用干种子。干种子有白色、黑色、褐色或带花纹的几种。各种不同的种子有不同的营养保健功用，选择时，应根据用途挑选。";

        Plant plant5 = new Plant();
        plant5.type=Plant.TYPE_TEXT;
        plant5.typeName="储藏建议";
        plant5.summary="扁豆乃易生冷害的豆类，在0-5℃的低温储存，能保持很好的外观。";

        Plant plant6 = new Plant();
        plant6.type=Plant.TYPE_TEXT;
        plant6.typeName="食用方法";
        plant6.summary="扁豆含有蛋白质、碳水化合物，还含有毒蛋白、凝集素以及能引发溶血症的皂素。所以加热时一定要注意，扁豆一定要煮熟以后才能食用，否则会可能出现食物中毒现象，具体方法如下：\n1.水焯法，将扁豆投入开水锅中，热水焯透，放入冷水中浸泡后再烹调。\n2.干煸法，把扁豆放入烧热的锅内煸炒，炒至豆荚变色。\n3.过油法，把扁豆放人油锅中炸一下，捞出滤干油再烹制。\n如果不采用上述三法而直接煸炒．最好长时间地焖烧，这样较安全。另外，一次不可食用过多，否则会发生腹胀，易产气，使人不快。";



        Plant plant7 = new Plant();
        plant7.type=Plant.TYPE_TEXT;
        plant7.typeName="注意事项";
        plant7.summary="1.扁豆中含有毒蛋白、凝集素及能引起溶血症的皂素，烹调前应用冷水浸泡或焯水处理。\n2.寒热病者，不可食。\n3.解暑湿者宜生用；健脾胃者宜炒用。";


        dataList.add(plant1);
        dataList.add(plant2);
        dataList.add(plant3);
        dataList.add(plant4);
        dataList.add(plant5);
        dataList.add(plant6);
        dataList.add(plant7);

        plantAdapter.addData(dataList);

    }
}